package com.cart.seon.usbconnection.base.utils;

import java.io.FileInputStream;
import java.io.IOException;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class FileUtils {

    public static String calculateFileHash(String filePath) {
        try {
            // 创建 MessageDigest 对象,指定算法为 MD5
            MessageDigest md = MessageDigest.getInstance("MD5");

            // 打开文件输入流
            FileInputStream fis = new FileInputStream(filePath);

            // 创建一个 byte 数组用于读取文件内容
            byte[] buffer = new byte[8192];
            int length;

            // 读取文件内容并更新 MessageDigest
            while ((length = fis.read(buffer)) != -1) {
                md.update(buffer, 0, length);
            }

            // 关闭文件输入流
            fis.close();

            // 获取 MD5 值并转换为字符串
            byte[] digest = md.digest();
            return new BigInteger(1, digest).toString(16);
        } catch (NoSuchAlgorithmException | IOException e) {
            e.printStackTrace();
            return "";
        }
    }

}
